#ifndef record_h
#define record_h

#include "data_processor_def.h"
#include "mem_pool.h"
#include "segment.h"

typedef struct {
    segment_t* HeadPtr; /* 数据段数组首地址 */
    segment_t* TailPtr; /* 数据段数组尾地址 */
    uint32_t Len; /* 数据表包含数据段个数 */
    uint32_t Capacity; /* 数据表大小 */
    char *name;
} Record; /* 数据表结构体 */

/**
 *  初始化数据表
 */
void record_init(Record *thiz, uint32_t capacity, char *name);
void record_reset(Record *thiz);
/**
 *  向记录表中添加一个数据段
 */
void record_push(Record *thiz, segment_t* segPtr);
/**
 *  删除数据表头数据段并返回其指针
 */
segment_t* record_pop_head(Record *thiz);
segment_t* record_pop_tail(Record *thiz);
void record_move_front(Record *thiz);

#endif /* record_h */
